package pe.edu.sistemas.postgrado.samupg.view.controller;

import java.util.List;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import pe.edu.sistemas.postgrado.samupg.business.service.informacion.PublicacionService;
import pe.edu.sistemas.postgrado.samupg.business.service.marketing.PeriodoService;
import pe.edu.sistemas.postgrado.samupg.business.service.planificacion.FichaInscripcionService;
import pe.edu.sistemas.postgrado.samupg.domain.model.FichaInscripcion;
import pe.edu.sistemas.postgrado.samupg.domain.model.Periodo;
import pe.edu.sistemas.postgrado.samupg.domain.model.Publicacion;
import pe.edu.sistemas.postgrado.samupg.domain.model.Usuario;
import pe.edu.sistemas.postgrado.samupg.util.UtilSAMUPG;

/**
 *
 * @author Marlon
 */
@ManagedBean
@Scope("view")
@Controller
public class ActivarFichasController {

    private List<FichaInscripcion> fichasvigentes;              
    private FichaInscripcion selectedFicha;    
    private String codinscripcion;
    
    @Resource
    private PeriodoService periodoService;
    @Resource
    private FichaInscripcionService fichaService;
    
    /**
     * Creates a new instance of InteresadoPrincipalController
     */
    public ActivarFichasController() {
    }
    
    @PostConstruct
    public void init() {
        Periodo p= periodoService.getPeriodoActual();                
        setFichasvigentes(fichaService.getFichasxPeriodo(p));
    }

    public String logoutAction() {
        FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
        FacesContext.getCurrentInstance().getExternalContext().getSession(true);
        return "/index.jsf?faces-redirect=true";
    }
    
    
    public Usuario getUsuario() {
        return UtilSAMUPG.isUsuarioLogeado();
    }
    
    public String pagarAction(){
        String result=null;
        
        if(getCodinscripcion().trim().length() == 0){
            result = "Debe ingresar un código de inscripción";
        }
        
        if (getCodinscripcion().trim().length() > 6) {
            result = "El codigo de inscripcion debe tener maximo 6 caracteres";
        }


        if (result == null) {
            
            selectedFicha.setFiPago(true);            
            result = fichaService.modificarFichaInscripcion(selectedFicha);
        }

        if (result == null) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Success", "Registro Correcto de Pago"));
        } else {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "Error",
                    "No se pudo registrar el pago. Error encontrado: " + result));
        }

        //limpiarDatos();

        return "";
    }

    /**
     * @return the fichasvigentes
     */
    public List<FichaInscripcion> getFichasvigentes() {
        return fichasvigentes;
    }

    /**
     * @param fichasvigentes the fichasvigentes to set
     */
    public void setFichasvigentes(List<FichaInscripcion> fichasvigentes) {
        this.fichasvigentes = fichasvigentes;
    }

    /**
     * @return the selectedFicha
     */
    public FichaInscripcion getSelectedFicha() {
        return selectedFicha;
    }

    /**
     * @param selectedFicha the selectedFicha to set
     */
    public void setSelectedFicha(FichaInscripcion selectedFicha) {
        this.selectedFicha = selectedFicha;
    }

    /**
     * @return the codinscripcion
     */
    public String getCodinscripcion() {
        return codinscripcion;
    }

    /**
     * @param codinscripcion the codinscripcion to set
     */
    public void setCodinscripcion(String codinscripcion) {
        this.codinscripcion = codinscripcion;
    }

 

}
